10 REM ******************************* 12 REM * * 14 REM * MAGAZINE INDEX PRGM * 15 REM * FOR THE COMMODORE 64 * 16 REM * AND DISK DRIVE. * 17 REM * * 18 REM * DON WHITE * 20 REM * 47 ARIEL COURT * 22 REM * NEPEAN, ONTARIO * 24 REM * K2H 8J1 * 26 REM * 613-829-2082 * 28 REM * * 30 REM ******************************* 32 REM 34 DIMM$(20) 36 M$(1)="65XX [205]ACHINE [204]ANGUAGE" 38 M$(2)="65XX [212]ECHNIQUES" 40 M$(3)="[195]64 [208]ROGRAMS" 42 M$(4)="[195]64 [212]ECHNIQUES" 44 M$(5)="[199]AMES" 46 M$(6)="[199]RAPHICS" 48 M$(7)="[205]ATHEMATICS" 50 M$(8)="[194]USINESS" 52 M$(9)="[194]ASIC [208]ROGRAMMING" 54 M$(10)="[195]OMMUNICATIONS" 56 M$(11)="[200]ARDWARE" 58 M$(12)="[211]OFTWARE" 60 M$(13)="[204]ANGUAGES" 62 M$(14)="[213]TILITIES" 64 M$(15)="[211]IMULATIONS" 66 M$(16)="[205]ISCELLANEOUS" 68 M$(17)="[193]PPLICATIONS" 70 M$(18)="[205]USIC" 72 M$(19)="[197]DUCATION" 74 M$(20)="[208]-500" 76 REM 78 GOTO332 80 REM 82 REM **** INDEX FILE SEARCH **** 84 REM 86 L=0 88 PRINTTAB(5)"[147][158][195]ATEGORIES AND CODES ARE: 90 [129]I[178]1[164]20 92 I$[178]" "[170][196](I) 94 [153][163]5)[199](30)[201](I$,2)". "[199](158)M$(I) 96 [130] 98 [133]"(null)HICH CATEGORYWAIT CLOSECMDCMDCMD";I$:I[178][197](I$) 100 [139]I[179]1[176]I[177]20[167][153]"ONONON":[137]98 102 [141]138:[143] FORMAT SCREEN 104 [140]:[135] N 106 [141]118:[143] READ DATA 108 [139][200](ZZ$,1)[178]"Y"[167]82 110 [137]332 112 [143] 114 [143] ****** READ DATA ****** 116 [143] 118 [135]C1,C2,C3,A$,B$,C$,D$ 120 [139]A$[178]""[167]130 122 A$[178][200](A$,22):[143] MAKE SURE STRING FITS SCREEN FORMAT 124 [139]C1[178]I[176]C2[178]I[176]C3[178]I[167][153]A$[163]23)B$[163]30)C$[163]35)D$:L[178]L[170]1 126 [139]L[178]17[167][141]164:[143] PAUSE 128 [137]118 130 [153]"DEFATNNOTHER CATEGORY 132 INPUT"(Y OR N)[146] [158]Y[157][157][157]";ZZ$ 134 RETURN 136 REM 138 REM **** FORMAT SCREEN **** 140 REM 142 PRINT"[147][195]ATEGORY:"TAB(15)CHR$(158)""M$(I)"[146]" 144 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][178][192][192][192][192][178][192][192][192][174] 146 [153]"(null)(null)PEEKMID$VALLEN(null)"[163]23)"(null)(null)(null)(null)LENVAL"[163]30)"STR$ATN(null)VAL"[163]35)"(null)CHR$# 148 FORJ=0TO38:PRINT"[192]";:NEXT 150 PRINT"" 152 PRINTTAB(22)"[221]"TAB(29)"[221]"TAB(34)"[221]"TAB(38)"[221]" 154 PRINTTAB(22)"[219]"TAB(29)"[219]"TAB(34)"[219]"TAB(38)"[179]":PRINT"[145] 156 [129]J[178]1[164]20:[153][163]22)"(null)"[163]29)"(null)"[163]34)"(null)"[163]38)"(null)":[130] 158 [153]"TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN>TANTANTANTANTANTAN>TANTANTANTAN>TANTANTANEXPLIST"; 160 [153]"":[142] 162 [143] 164 [143] ***** CLEAR FORMAT ***** 166 [143] 168 [153]"DEF(null)RESS SPACEWAIT TO CON-":[153]"TINUE, @WAIT TO EXIT. 170 GETZZ$:IFZZ$=""THEN170 172 IFZZ$="@"THEN338 174 PRINT"" 176 FORJ=1TO20 178 PRINT" [221] [221] [221] [155]":NEXT 180 L=0:PRINT"":RETURN 182 REM 184 REM ***** MAGAZINE CODE ***** 186 REM 188 PRINT"[147]"TAB(13)"[158][205][193][199][193][218][201][206][197] [195][207][196][197][211][155] 190 [153]" LENLEN LENREATIVE LENOMPUTING":[153]" (null)LEN (null)ERSONAL LENOMPUTING 192 PRINT" [203][194] [203]ILOBAUD [205]ICROCOMPUTING":PRINT" [194][217][212][197] [194][217][212][197] 194 [153]" (null)RIGHT$LEN(null)(null) (null)RIGHT$LEN(null)(null)":[153]" (null)(null)ATN(null)(null) (null)RANSACTOR 196 PRINT" [201][206][212][193][199][197] [201]NTERFACE [193]GE" 198 PRINT" [195][207][205][208] [195][207][205][208][213][212][197]! 200 [141]462 202 [137]332 204 [143] 206 [143] *** ADD MATERIAL *** 208 [143] 210 [153]"LOAD"[163]11)"SYS*** LEN(null)VALATN(null)VAL STR$ATN(null)ATNWAIT ***" 212 [143] PRINT""TAB(9)"(null)P MODES & ENTRY CODES 214 PRINT""TAB(11)"[197]NTER NEW DATA[158] E" 216 PRINT""TAB(11)"[200]ELP[158] H" 218 PRINT""TAB(11)"[197]XIT[158] \" 220 PRINT:PRINT:PRINT" [217]OUR CHOICE ?" 222 GETA$:IFA$<>"E"ANDA$<>"H"ANDA$<>"\"THEN222 224 IFA$="E"THEN232 226 IFA$="H"THEN364 228 GOTO338 230 REM 232 REM *** ENTER DATA *** 234 REM 235 DN$="" 236 X=FRE(0):IFX<0THENX=65535+FRE(0) 238 PRINT"[147][158][196]ATA ENTRY MODE[146] -"X"BYTES FREE":PRINTDN$"[164]" 240 PRINT""TAB(4)"C1,C2,C3,"CHR$(34)"TITLE"CHR$(34)","CHR$(34)"REF"CHR$(34); 242 PRINT",DATE,PAGE" 244 PRINT""TAB(7)"[150][208]RESS '\' TO EXIT THIS MODE[158]" 246 GETA$:IFA$=""THEN246 248 IFA$=CHR$(20)ANDLEN(R$)=0THEN246 250 IFA$=CHR$(20)ANDLEN(R$)>0THENR$=LEFT$(R$,LEN(R$)-1):PRINTDN$R$A$:A$="" 252 IF A$=CHR$(13)THEN270 254 IFA$="\"THENRUN 256 R$=R$+A$:IFLEN(R$)<65THEN268 258 PRINTDN$ 260 PRINT" [196][193][212][193] ENTRY HAS EXCEEDED 65 CHARACTERS. 262 [153]" (null)LEASE RE-ENTER DATA" 264 [141]462 266 R$[178]"":[137]238 268 [153]DN$R$"TO":[137]246 270 [140]:[135]N:N[178]N[170]1:LN[178]1000[170]N 272 [153]""LN"DATA "R$ 274 [153]"1000 DATA "N 276 [153]"GOTO232":[153]" 278 POKE198,3:POKE631,13:POKE632,13:POKE633,13 280 END 282 REM **** SAVE FILE **** 284 REM 286 INPUT"[147][158][193]RE YOU REPLACING A PREVIOUS VERSION Y[157][157][157]";ZZ$ 288 INPUT"[198]ILE NAME [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";F$ 290 IFF$="[160]"THEN288 292 INPUT"[201]S THIS CORRECT[160][160]Y[157][157][157]";A$ 294 IFA$<>"Y"THEN288 296 INPUT"[215]HICH DRIVE 0[157][157][157]";D$:D=VAL(D$) 298 IFD<0ORD>1THENPRINT"[145][145][145]":GOTO296 300 OPEN15,8,15:PRINT#15,"I"+D$ 302 IFZZ$<>"Y"THEN308 304 PRINT#15,"R"+D$+":TEMP="+F$ 305 INPUT#15,E,E$,E1,E2 306 IFE>19THENPRINT""E$:PRINT"[198]ILE NOT SAVED":GOSUB462:GOTO318 308 SAVED$+":"+F$,8 310 PRINT"[214]ERIFYING[146] "F$ 312 VERIFY"*",8 314 IFST<>64THENCLOSE15:END 316 IFZZ$="Y"THENPRINT#15,"S"+D$+":TEMP" 318 CLOSE15:GOTO332 320 REM 322 REM ****** EXIT ***** 324 REM 326 PRINT"[147] 328 [128] 330 [143] 332 [143] *** MAIN PROGRAM BLOCK *** 333 [151]53280,0:[151]53281,0 334 [143] 336 [153][199](14) 338 [153]"LOAD"[163]9)"SYS*** (null)ATNCHR$ATN(null)RIGHT$(null)VAL RIGHT$(null)STR$VAL(null)WAIT ***" 340 [153][163]9)"1.SYS (null)EARCH FILE" 342 [153][163]9)"2.SYS (null)IST MAGAZINE CODE 344 PRINTTAB(9)"3.[158] [193]DD MATERIAL 346 [153][163]9)"4.SYS (null)AVE FILE 348 PRINTTAB(9)"5.[158] [201]NSTRUCTIONS 350 [153][163]9)"6.SYS (null)OAD ANOTHER INDEX 352 PRINTTAB(9)"7.[158] [197]XIT PROGRAM 354 [153][163]5)" (null)OUR CHOICE ? 356 GETZZ$:IFZZ$=""THEN356 358 ZZ=VAL(ZZ$):IFZZ<1ORZZ>7THENPRINT"[145][145][145]";:GOTO354 360 ONZZGOTO82,184,206,282,404,476,322 362 REM 364 REM **** HELP FUNCTION **** 366 REM 368 PRINT"[147]"TAB(10)"[158]*** [201][206][211][212][210][213][195][212][201][207][206][211][146] ***" 370 PRINT"[155] [212]HE DATA MUST BE ENTERED IN 7 FIELDS. 372 [153]"(null)HE FORMAT FOR THE FIELDS IS: 374 PRINT"[158] C1,C2,C3,"CHR$(34)"TITLE"CHR$(34)","CHR$(34)"REF"CHR$(34); 376 PRINT",DATE,PAGE" 378 PRINT"[155]WHERE C1,C2,C3 ARE CROSS REFERENCE 380 [153]"VALUES AS PER THE CATEGORY LIST. 382 PRINT"[193]S AN EXAMPLE: 384 [153]"SYS 1,4,0,"[199](34)"(null)ETBUG"[199](34)","[199](34); 386 [153]"LEN(null)(null)(null)"[199](34)",8107,132" 388 [153]"LISTVALACH FIELD MUST BE FOLLOWED BY A COMMA 390 PRINT"AND THE [193]RTICLE AND [205]AGAZINE NAMES MUST 392 [153]"BE PRECEEDED AND FOLLOWED BY QUOTATION 394 PRINT"MARKS. 396 [153]"(null)SE '0' FOR NULL CROSS-REFERENCES." 398 [141] 462 400 [137]206 402 [143] 404 [143] *** GENERAL INSTRUCTIONS *** 406 [143] 408 [153]"LOAD"[163]10)"SYS*** RIGHT$(null)(null)(null)(null)(null)LEN(null)RIGHT$(null)(null)(null)WAIT ***" 410 [153]"LIST(null)HIS PROGRAM ALLOWS THE USER TO STORE 412 PRINT"INFORMATION RELATING TO MAGAZINE 414 [153]"ARTICLES IN STR$ATN(null)ATN STATEMENTS WITHIN THE 416 PRINT"PROGRAM. [197]ACH ARTICLE CAN HAVE UP TO 418 [153]"3 CROSS-REFERENCES. (null)HE CROSS-REFER- 420 PRINT"ENCE CATEGORIES WILL BE DISPLAYED WHEN 422 [153]"(null)PTION 1 IN THE (null)ENU IS CHOSEN. (null)HE 424 PRINT"CROSS-REFERENCE TITLES ARE STORED AT 426 [153]"THE BEGINNING OF THE PROGRAM AND CAN BE 428 PRINT"EASILY MODIFIED TO SUIT THE USER. 430 [153]"(null)EW STR$ATN(null)ATN STATEMENTS ARE CREATED IN THE 432 PRINT"PROGRAM BY SELECTING [207]PTION 3. [212]HE 434 [153]"INSTRUCTIONS FOR CREATING THE STR$ATA 436 PRINT"[194]ASE CAN BE ACCESSED FROM THAT ROUTINE. 438 [141]462 440 [153]"LOAD"[163]10)"SYS*** RIGHT$(null)(null)(null)(null)(null)LEN(null)RIGHT$(null)(null)(null)WAIT ***" 442 [153]"LIST(null)NCE MODIFICATIONS HAVE BEEN MADE IN 444 PRINT"THE [196][193][212][193] STATEMENTS, THE PROGRAM CAN 446 [153]"THEN SAVE A COPY OF ITSELF TO DISK. 448 PRINT"[201]F YOU WISH, THE PREVIOUS COPY OF THE 450 [153]"PROGRAM WILL BE RENAMED, A NEW COPY 452 PRINT"SAVED AND VERIFIED, AND THE OLD COPY 454 [153]"SCRATCHED. 456 GOSUB462 458 GOTO332 460 REM 462 REM ***** PROMPT ***** 464 REM 466 PRINT" 468 [153][163]5)"DEF(null)RESS (null)VAL(null)(null)(null)(null)WAIT TO CONTINUE 470 GETZZ$:IFZZ$<>CHR$(13)THEN470 472 RETURN 474 REM 476 REM *** LOAD ANOTHER INDEX *** 478 REM 480 INPUT"[147][158][201]NDEX YEAR TO BE LOADED * [157][157][157][157][157][157][157][157][157][157][157][157][157][157]";F$ 482 IFF$="*"THEN480 484 INPUT"IS THIS CORRECT[160][160]Y[157][157][157]";ZZ$ 486 IFZZ$<>"Y"THEN480 488 PRINT"[147]LOAD";CHR$(34);F$;CHR$(34);",8" 490 PRINT"RUN" 492 POKE198,2:POKE631,13:POKE632,13 494 END 496 REM 498 REM **** DATA STARTS HERE **** 500 REM 1000 DATA 4 1001 DATA 11,16,0,"[195]64 [205]EMORY [205]AP","[195][207][205][208]",8210,150 1002 DATA 6,14,3,"[211]HAPE [199]ENERATOR [198]OR [195]64","[195][207][205][208]",8211,160 1003 DATA 11,12,16,"1ST [204]OOK [193]T [212]HE [195]64","[195][207][205][208]",8208,60 1004 DATA 11,6,18,"[211]PRITES & [211]OUND [207]N [195]64","[195][207][205][208]",8209,106 9999 DATA 0,0,0,"","","","":REM END OF FILE